package com.pc.admin.service.ipml;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.pc.admin.entity.StreetMap;
import com.pc.admin.mapper.StreetMapMapper;
import com.pc.admin.service.IStreetMapService;
import com.pc.admin.util.PageParam;
import com.pc.admin.vo.StreetMapVO;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Objects;


@Service
public class StreetMapServiceImpl extends ServiceImpl<StreetMapMapper, StreetMapVO> implements IStreetMapService {

    @Autowired
    private StreetMapMapper streetMapMapper;

    @Override
    public Page<StreetMapVO> selectPage(PageParam<StreetMapVO> page) {
        StreetMapVO param = page.getParam();
        LambdaQueryWrapper<StreetMapVO> queryWrapper = new LambdaQueryWrapper<>();
        if (Objects.equals(param.getAdminLevel(), "省") || param.getAdminLevel() != null) {
            // 添加省查询
            queryWrapper.eq(StringUtils.isNotBlank(param.getProvince()), StreetMapVO::getProvince, param.getProvince());
        }
        if (Objects.equals(param.getAdminLevel(), "市(地)") || param.getAdminLevel() != null) {
            // 添加市查询条件
            queryWrapper.eq(StringUtils.isNotBlank(param.getCity()), StreetMapVO::getCity, param.getCity());
        }
        if (Objects.equals(param.getAdminLevel(), "县(区)") || param.getAdminLevel() != null) {
            // 添加县查询条件
            queryWrapper.eq(StringUtils.isNotBlank(param.getCounty()), StreetMapVO::getCounty, param.getCounty());
        }
//        // 添加统计时间查询条件
//        // start  end
//        LocalDate defaultStatisticsTime = LocalDate.now().minusMonths(1); // 上个月的日期
//        LocalDate parsedStatisticsTime = StringUtils.isNotBlank(String.valueOf(param.getCreateTime())) ? LocalDate.parse((CharSequence) param.getCreateTime()) : defaultStatisticsTime;
//        String formattedStatisticsTime = parsedStatisticsTime.format(DateTimeFormatter.ofPattern("yyyy-MM"));
//        queryWrapper.eq(StreetMapVO::getCreateTime, formattedStatisticsTime);
        return streetMapMapper.streetMapPage(new Page<>(page.getCurrent(), page.getSize()), param, queryWrapper);
    }

}
